1 Imports System.Data
2 Imports System.Data.SqlClient
3 Class Nguoi_dung
4     Private flag As Boolean
5     Private bang_Nguoi_Dung As Data.DataTable
6     Private vi_tri_hien_hanh As Integer
7
8     Public Sub UpdateNguoiDung()
9         If Form_Login.LoginLoaiND =
"Quan_Ly" OrElse Form_Login.LoginLoaiND = "Admin" Then
10             Doc_bang_Nguoi_Dung()
11             vi_tri_hien_hanh =
0
12             Xuat_thong_tin_Nguoi_Dung()
13             Tao_lien_ket()
14             Form_Main.luoi_NguoiDung.ReadOnly = True
15             Lock_Control(False)
16             LockButton(False)
17         Else
18             Doc_bang_Nguoi_Dung()
19             vi_tri_hien_hanh =
0
20             Xuat_thong_tin_Nguoi_Dung()
21             Tao_lien_ket()
22             Form_Main.luoi_NguoiDung.ReadOnly = True
23             Form_Main.Button_Them.Enabled = False
24             Form_Main.Button_Sua.Enabled = False
25             Form_Main.Button_Xoa.Enabled = False
26             Form_Main.Button_CapPass.Enabled = False
27             Form_Main.Button_PhanQuyen.Text =
"Xem Quyền"
28         End If
29     End Sub
30
31 #Region
"Xu ly doc bang nguoi dung va phan loai nguoi dung de hien thi da hoan tat"
32     Private Sub Doc_bang_Nguoi_Dung()
33         
'Lam sach luoi sau moi lan cap nhat
34         Form_Main.luoi_NguoiDung.ClearSelection()
35         Dim lenh As String
36         If Form_Login.LoginLoaiND =
"Quan_Ly" Then
37             lenh =
"Select * from NguoiDung where IdLoaiND = 'Nhan_Vien' or IdNguoiDung = '" & Form_Login.LoginTenND & "'"
38         ElseIf Form_Login.LoginLoaiND =
"Nhan_Vien" Then
39             lenh =
"Select * from NguoiDung where IdNguoiDung = '" & Form_Login.txtUserName.Text & "'"
40         Else
41             lenh =
"Select * from NguoiDung"
42         End If
43         bang_Nguoi_Dung = Doc_bang(lenh)
44         Form_Main.luoi_NguoiDung.DataSource = bang_Nguoi_Dung
45     End Sub
46 #End Region
47
48 #Region
"Xu ly cac nut di chuyen va xuat thong tin nguoi dung da hoan tat"
49     Private Sub Xuat_thong_tin_Nguoi_Dung()
50         Dim dong As DataRow = bang_Nguoi_Dung.Rows(vi_tri_hien_hanh)
51         With Form_Main
52             .cbo_Username.Text = dong(
"IdNguoiDung").ToString
53             .txt_Password.Text = dong(
"PassND").ToString
54             .txt_HoTen.Text = CStr(dong(
"HoTen"))
55             .date_NgaySinh.Text = CStr(dong(
"NgaySinh"))
56             If dong(
"GioiTinh").ToString = "Nam" Then
57                 .radNam.Checked = True
58             Else
59                 .radNu.Checked = True
60             End If
61             .txt_DiaChi.Text = dong(
"DiaChi").ToString
62             .txt_SoDienThoai.Text = dong(
"SoDT").ToString
63             .cbo_IdLoaiND.Text = dong(
"IdLoaiND").ToString
64         End With
65     End Sub
66
67     Public Sub Di_chuyen_ve_sau()
68         If vi_tri_hien_hanh < bang_Nguoi_Dung.Rows.Count -
1 Then
69             vi_tri_hien_hanh +=
1
70             Xuat_thong_tin_Nguoi_Dung()
71         End If
72     End Sub
73
74     Public Sub Di_chuyen_ve_truoc()
75         If vi_tri_hien_hanh >
0 Then
76             vi_tri_hien_hanh -=
1
77             Xuat_thong_tin_Nguoi_Dung()
78         End If
79     End Sub
80
81     Public Sub Di_chuyen_ve_dau()
82         vi_tri_hien_hanh =
0
83         Xuat_thong_tin_Nguoi_Dung()
84     End Sub
85
86     Public Sub Di_chuyen_ve_cuoi()
87         vi_tri_hien_hanh = bang_Nguoi_Dung.Rows.Count -
1
88         Xuat_thong_tin_Nguoi_Dung()
89     End Sub
90 #End Region
91
92 #Region
"Tao lien ket giua cac dieu khien voi datagridview da hoan tat"
93     Private Sub Tao_lien_ket()
94         Dim query As New SqlCommand(
"select IdLoaiND from LoaiNguoiDung", connect)
95         Dim dr As SqlDataReader
96         connect.Open()
97         dr = query.ExecuteReader
98         Form_Main.cbo_IdLoaiND.Items.Clear()
99         While dr.Read() = True
100             If Form_Login.LoginLoaiND =
"Admin" Then
101                 Form_Main.cbo_IdLoaiND.Items.Add(dr.GetValue(
0).ToString)
102             ElseIf Form_Login.LoginLoaiND =
"Quan_Ly" Then
103                 If dr.GetValue(
0).ToString <> "Admin" Then
104                     Form_Main.cbo_IdLoaiND.Items.Add(dr.GetValue(
0).ToString)
105                 End If
106             Else
107                 If dr.GetValue(
0).ToString <> "Admin" AndAlso dr.GetValue(0).ToString <> "Quan_Ly" Then
108                     Form_Main.cbo_IdLoaiND.Items.Add(dr.GetValue(
0).ToString)
109                 End If
110             End If
111         End While
112         connect.Close()
113         With Form_Main.cbo_Username
114             .DataSource = Form_Main.luoi_NguoiDung.DataSource
115             .DisplayMember =
"IdNguoiDung"
116             .ValueMember =
"IdNguoiDung"
117             .SelectedValue =
"IdNguoiDung"
118         End With
119         Xoa_lien_ket()
120         
'Tao gia tri mac dinh la IdNguoiDung dong thu 0 cot 0 luc khoi dong vi IdNguoiDung la member ko lien ket duoc
121         Form_Main.cbo_Username.Text = Form_Main.luoi_NguoiDung.Rows(
0).Cells.Item(0).Value.ToString
122         Form_Main.txt_Password.DataBindings.Add(
"text", Form_Main.luoi_NguoiDung.DataSource, "PassND")
123         Form_Main.txt_DiaChi.DataBindings.Add(
"text", Form_Main.luoi_NguoiDung.DataSource, "DiaChi")
124         Form_Main.txt_HoTen.DataBindings.Add(
"text", Form_Main.luoi_NguoiDung.DataSource, "HoTen")
125         Form_Main.txt_SoDienThoai.DataBindings.Add(
"text", Form_Main.luoi_NguoiDung.DataSource, "SoDT")
126         Form_Main.date_NgaySinh.DataBindings.Add(
"text", Form_Main.luoi_NguoiDung.DataSource, "NgaySinh")
127         Form_Main.cbo_IdLoaiND.DataBindings.Add(
"text", Form_Main.luoi_NguoiDung.DataSource, "IdLoaiND")
128     End Sub
129 #End Region
130
131 #Region
"Xoa lien ket giua cac dieu khien voi datagridview da hoan tat"
132     Private Sub Xoa_lien_ket()
133         Form_Main.txt_Password.DataBindings.Clear()
134         Form_Main.txt_DiaChi.DataBindings.Clear()
135         Form_Main.txt_HoTen.DataBindings.Clear()
136         Form_Main.txt_SoDienThoai.DataBindings.Clear()
137         Form_Main.cbo_IdLoaiND.DataBindings.Clear()
138         Form_Main.date_NgaySinh.DataBindings.Clear()
139     End Sub
140 #End Region
141
142 #Region
"Them va sua thong tin nguoi dung da ly ly xong"
143     Public Sub Them_nguoi_dung()
144         flag = True
145         Lock_Control(True)
146         LockButton(True)
147         Clear_Control()
148         Form_Main.luoi_NguoiDung.ReadOnly = False
149     End Sub
150
151     Public Sub Sua_thong_tin_ca_nhan()
152         flag = False
153         Lock_Control(True)
154         LockButton(True)
155         Form_Main.cbo_Username.Focus()
156         Form_Main.cbo_Username.Text = Form_Login.LoginTenND
157         Form_Main.cbo_Username.Enabled = False
158         Form_Main.luoi_NguoiDung.ReadOnly = False
159         Form_Main.cbo_IdLoaiND.Enabled = False
160     End Sub
161
162     Public Sub Luu_thay_doi()
163         Tao_ket_noi()
164         If connect.State = ConnectionState.Open Then
165             connect.Close()
166         End If
167         With Form_Main
168             If flag = True Then
'Them nguoi dung moi
169                 If TestInfo() Then
170                     Dim dg As DialogResult = MessageBox.Show(
"Ban có chắn chắc muốn thêm người dùng này không, " & vbNewLine & _
171                                 
"Click OK đê đồng ý, Cancel để hủy.", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
172                     If dg = Windows.Forms.DialogResult.OK Then
173                         Dim flag As Integer =
0
174                         Dim sqlCM As New SqlCommand(
"select IdNguoiDung from NguoiDung ", connect)
175                         Dim sqlDR As SqlDataReader
176                         connect.Open()
177                         sqlDR = sqlCM.ExecuteReader
178                         While sqlDR.Read() = True
179                             If sqlDR.GetValue(
0).ToString = .cbo_Username.Text Then
180                                 flag =
1
181                                 MsgBox(
"Tài khoản " + .cbo_Username.Text + " đã được sử dụng !", MsgBoxStyle.OkOnly, "Thông Báo")
182                             End If
183                         End While
184                         connect.Close()
185
186                         If flag =
0 Then
187                             Dim sqlqr As New SqlCommand
188                             sqlqr.Connection = connect
189                             If .radNam.Checked = True Then
190                                 sqlqr.CommandText =
"insert into NguoiDung values('" + .cbo_Username.Text + "','" + .txt_Password.Text + "',N'" + .txt_HoTen.Text + "','" + Format(.date_NgaySinh.Value, "yyyy/MM/dd") + "',N'Nam',N'" + .txt_DiaChi.Text + "'," + .txt_SoDienThoai.Text + ",'" + .cbo_IdLoaiND.Text + "')"
191                             Else
192                                 sqlqr.CommandText =
"insert into NguoiDung values('" + .cbo_Username.Text + "','" + .txt_Password.Text + "',N'" + .txt_HoTen.Text + "','" + Format(.date_NgaySinh.Value, "yyyy/MM/dd") + "',N'Nữ',N'" + .txt_DiaChi.Text + "'," + .txt_SoDienThoai.Text + ",'" + .cbo_IdLoaiND.Text + "')"
193                             End If
194
195                             connect.Open()
196                             Try
197                                 sqlqr.ExecuteNonQuery()
198                                 connect.Close()
199                                 Doc_bang_Nguoi_Dung()
200                                 vi_tri_hien_hanh =
0
201                                 Xuat_thong_tin_Nguoi_Dung()
202                                 Tao_lien_ket()
203                                 MsgBox(
"Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
204                             Catch ex As Exception
205                                 MsgBox(
"Một số kí tự trong ô 'Họ Tên' và 'Địa Chỉ' không phù hợp" & vbNewLine & "Các kí có thể nhập là 0 - 9, 26 chữ cái, '_', các dấu trong tiếng việt và một số kí tự khác", MsgBoxStyle.Exclamation, "Thông báo lỗi")
206                                 connect.Close()
207                             End Try
208                         End If
209                     Else
210                         Huy_thao_tac()
211                     End If
212                 
213                 End If
214             Else
'Sua thong tin nguoi dung
215                 If TestInfo() Then
216                     If Form_Main.cbo_Username.Text <> Form_Login.LoginTenND Then
217                         Dim dg As DialogResult = MessageBox.Show(
"Ban chỉ có quyền sưa thông tin cá nhân của mình, " & vbNewLine & _
218                                 
"Click OK đê tiếp tục sửa thông tin, Cancel để hủy thao tác", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
219                         If dg = Windows.Forms.DialogResult.OK Then
220                             Sua_thong_tin_ca_nhan()
221                             Exit Sub
222                         Else
223                             Huy_thao_tac()
224                             Exit Sub
225                         End If
226                     End If
227
228                     Dim dialog As DialogResult = MessageBox.Show(
"Ban có chắn chắc muốn sửa thông tin cá nhân., " & vbNewLine & _
229                                 
"Click OK đê đồng ý, Cancel để hủy.", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
230                     If dialog = DialogResult.OK Then
231                         Dim sqlqr As New SqlCommand
232                         sqlqr.Connection = connect
233                         If .radNam.Checked Then
234                             sqlqr.CommandText =
"update NguoiDung set PassND='" + .txt_Password.Text + "',HoTen=N'" + .txt_HoTen.Text + "',NgaySinh='" + Format(.date_NgaySinh.Value, "yyyy/MM/dd") + "',GioiTinh=N'Nam',DiaChi=N'" + .txt_DiaChi.Text + "',SoDT=" + .txt_SoDienThoai.Text + ",IdLoaiND='" + .cbo_IdLoaiND.Text + "' where IdNguoiDung='" + .cbo_Username.Text + "'"
235                         Else
236                             sqlqr.CommandText =
"update NguoiDung set PassND='" + .txt_Password.Text + "',HoTen=N'" + .txt_HoTen.Text + "',NgaySinh='" + Format(.date_NgaySinh.Value, "yyyy/MM/dd") + "',GioiTinh=N'Nữ',DiaChi=N'" + .txt_DiaChi.Text + "',SoDT=" + .txt_SoDienThoai.Text + ",IdLoaiND='" + .cbo_IdLoaiND.Text + "' where IdNguoiDung='" + .cbo_Username.Text + "'"
237                         End If
238
239                         Try
240                             connect.Open()
241                             sqlqr.ExecuteNonQuery()
242                             connect.Close()
243                             Lock_Control(False)
244                             LockButton(False)
245                             Form_Main.luoi_NguoiDung.Enabled = True
246                             UpdateNguoiDung()
247                             MsgBox(
"Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
248                         Catch ex As Exception
249                             MsgBox(
"Một số kí tự bạn nhập không phù hợp" & vbNewLine & "Các kí có thể nhập là 0 - 9, 26 chữ cái, _ @ * % $ & - ~ và một số kí tự khác", MsgBoxStyle.Exclamation, "Thông báo lỗi")
250                             connect.Close()
251                         End Try
252                     Else
253                         Huy_thao_tac()
254                     End If
255                 End If
256             End If
257         End With
258     End Sub
259 #End Region
260
261 #Region
"Xu ly huy thao tac cap nhat da hoan tat"
262     Public Sub Huy_thao_tac()
263         Xoa_lien_ket()
264         Lock_Control(False)
265         LockButton(False)
266         UpdateNguoiDung()
267     End Sub
268 #End Region
269
270 #Region
"Xu ly xoa nguoi dung da hoan tat"
271     Public Sub Xoa_nguoi_dung()
272         If Trim(Form_Main.cbo_Username.Text) = Form_Login.LoginTenND Then
273             Dim dg As DialogResult = MessageBox.Show(
"Ban không được quyền xóa thông tin của chính bạn được. " _
274             ,
"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
275         Else
276             Dim qs = MessageBox.Show(
"Bạn chắc chắn muốn xóa tất cả thông tin về:" & vbNewLine & _
277                         
" - User name người dùng: " & Form_Main.cbo_Username.Text & vbNewLine & _
278                         
" - Tên: " & Form_Main.txt_HoTen.Text & vbNewLine & _
279                         
" - Số điện thoại: " & Form_Main.txt_SoDienThoai.Text, "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information)
280             If qs = DialogResult.Yes Then
281                 Dim lenh As String =
"Delete from NguoiDung where IdNguoiDung = '" & Form_Main.cbo_Username.SelectedValue.ToString & "'"
282                 Dim query1 As New SqlCommand(lenh, connect)
283                 Try
284                     connect.Open()
285                     query1.ExecuteNonQuery()
286                     connect.Close()
287                     UpdateNguoiDung()
288                     MsgBox(
"Dữ liệu đã xóa thành công", vbInformation, "Thông báo")
289                 Catch ex As Exception
290                     MsgBox(
"Xóa không thành công", vbExclamation, "Thông báo")
291                 End Try
292             Else
293                 MsgBox(
"Đã hủy thao tác xóa!", vbExclamation, "Thông báo")
294             End If
295         End If
296     End Sub
297 #End Region
298
299 #Region
"Cac xu ly phu voi cac dieu khien da hoan tat"
300     Private Sub Lock_Control(ByVal f As Boolean)
301         With Form_Main
302             .cbo_Username.Enabled = True
303             .txt_Password.Enabled = f
304             .txt_HoTen.Enabled = f
305             .date_NgaySinh.Enabled = f
306             .radNam.Enabled = f
307             .radNu.Enabled = f
308             .cbo_IdLoaiND.Enabled = f
309             .txt_SoDienThoai.Enabled = f
310             .txt_DiaChi.Enabled = f
311         End With
312     End Sub
313
314     Private Sub Clear_Control()
315         With Form_Main
316             .txt_Password.Text =
""
317             .txt_DiaChi.Text =
""
318             .txt_HoTen.Text =
""
319             .txt_SoDienThoai.Text =
""
320             .radNu.Checked = True
321             .cbo_Username.Text =
""
322             .date_NgaySinh.Text =
""
323             .cbo_IdLoaiND.Text =
"Nhan_Vien"
324             .cbo_Username.Focus()
325         End With
326     End Sub
327
328     Private Sub LockButton(ByVal dt As Boolean)
329         With Form_Main
330             .Button_Them.Enabled = Not dt
331             .Button_Sua.Enabled = Not dt
332             .Button_Xoa.Enabled = Not dt
333             .Button_Luu.Enabled = dt
334             .Button_Huy.Enabled = dt
335             .Button_PhanQuyen.Enabled = Not dt
336             .Button_CapPass.Enabled = Not dt
337         End With
338     End Sub
339
340     Private Function TestInfo() As Boolean
341         TestInfo = True
342         With Form_Main
343             If Trim(.cbo_Username.Text) =
"" OrElse Trim(.txt_Password.Text) = "" OrElse Trim(.txt_HoTen.Text) = "" _
344             OrElse Trim(.date_NgaySinh.Text) =
"" OrElse Trim(.cbo_IdLoaiND.Text) = "" _
345             OrElse Trim(.txt_SoDienThoai.Text) =
"" OrElse Trim(.txt_DiaChi.Text) = "" Then
346                 TestInfo = False
347                 MsgBox(
"Bạn phải nhập đầy đủ thông tin!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
348             End If
349
350             If Trim(.cbo_Username.Text) =
"" Then
351                 .cbo_Username.Focus()
352                 Exit Function
353             ElseIf Trim(.txt_Password.Text) =
"" Then
354                 .txt_Password.Focus()
355                 Exit Function
356             ElseIf Trim(.txt_HoTen.Text) =
"" Then
357                 .txt_HoTen.Focus()
358                 Exit Function
359             ElseIf Trim(.date_NgaySinh.Text) =
"" Then
360                 .date_NgaySinh.Focus()
361                 Exit Function
362             ElseIf Trim(.txt_SoDienThoai.Text) =
"" Then
363                 .txt_SoDienThoai.Focus()
364                 Exit Function
365             ElseIf Trim(.txt_DiaChi.Text) =
"" Then
366                 .txt_DiaChi.Focus()
367                 Exit Function
368             End If
369
370             If Trim(.txt_Password.Text).Length <
5 Then
371                 TestInfo = False
372                 MsgBox(
"Password không được ít hơn 5 kí tự!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
373                 .txt_Password.Focus()
374                 Exit Function
375             End If
376
377             If Trim(.cbo_IdLoaiND.Text) <>
"Quan_Ly" AndAlso Trim(.cbo_IdLoaiND.Text) <> "Nhan_Vien" AndAlso Trim(.cbo_IdLoaiND.Text) <> "Admin" Then
378                 TestInfo = False
379                 MsgBox(
"Loại người dùng chỉ có thể là QL(Quản Lý) hoặc NV(Nhân Viên)", MsgBoxStyle.Exclamation, "Thông báo lỗi")
380                 .cbo_IdLoaiND.Focus()
381                 Exit Function
382             End If
383
384             If Trim(.txt_SoDienThoai.Text).Length >
11 Then
385                 TestInfo = False
386                 MsgBox(
"Số điện thoại không được quá 11 số", MsgBoxStyle.Exclamation, "Thông báo lỗi")
387                 .txt_SoDienThoai.Focus()
388                 Exit Function
389             End If
390         End With
391     End Function
392 #End Region
393
394 End Class



Quản lý phần mềm bán vé xe VB 8.407 lượt xem

Gõ tìm kiếm nhanh...